package 集合.day2.demo2;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Test1 {
    public static void main(String[] args) {
        LinkedList lk=new LinkedList();
        ArrayList arr=new ArrayList();
        compare(lk,true);
        compare(arr,true);
        System.out.println("==========下面是尾部测试==========");
        compare(lk,false);
        compare(arr,false);



    }
    //list可以是ArrayList或LinkedList
    //isHead是true表示向头部添加，false表示向尾部添加
    static void compare(List list,boolean isHead){
        long start=System.currentTimeMillis();
        for(int i=0;i<100000;i++){
            if(isHead){
                list.add(0,i);
            }else {
                list.add(i);
            }
        }
        long end=System.currentTimeMillis();
        String name;
        //判断左边变量是否是右边类型或其子类型的实例
        if(list instanceof ArrayList){
            name="ArrayList";
        }else {
            name="LinkedList";
        }
        String position=isHead?"头部":"尾部";
        System.out.println(name+position+"添加元素用时"+(end-start)+"毫秒");
    }
}
